using System;
using System.ComponentModel.DataAnnotations;

namespace BTKERP.Model
{
    #region Product
    /// <summary>
    /// This object represents the properties and methods of a Product.
    /// </summary>
    [Serializable]
    public class Product
    {
        protected Guid _id;
        protected int _sequence;
        protected string _code = String.Empty;
        protected string _name = String.Empty;
        protected string _physicalBarcode = String.Empty;
        protected string _packBarcode = String.Empty;
        protected string _description = String.Empty;
        protected Guid _categoryId = Guid.Empty;
        protected Guid _physicalUnitId = Guid.Empty;
        protected Guid _packUnitId = Guid.Empty;
        protected decimal _numberPerPhysical;
        protected decimal _physicalSalePrice;
        protected decimal _packSalePrice;
        protected DateTime _createdOn;
        protected string _createdBy = String.Empty;
        protected DateTime _updatedOn;
        protected string _updatedBy = String.Empty;
        protected bool _isDeleted;
        protected int _status;
        protected decimal _availableQty;

        public Product()
        {
        }

        #region Public Properties
        public Guid Id
        {
            get { return _id; }
            set { _id = value; }
        }

        public int Sequence
        {
            get { return _sequence; }
            set { _sequence = value; }
        }

        public string Code
        {
            get { return _code; }
            set { _code = value; }
        }

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        public string PhysicalBarcode
        {
            get { return _physicalBarcode; }
            set { _physicalBarcode = value; }
        }

        public string PackBarcode
        {
            get { return _packBarcode; }
            set { _packBarcode = value; }
        }

        public string Description
        {
            get { return _description; }
            set { _description = value; }
        }

        public Guid CategoryId
        {
            get { return _categoryId; }
            set { _categoryId = value; }
        }

        public Guid PhysicalUnitId
        {
            get { return _physicalUnitId; }
            set { _physicalUnitId = value; }
        }

        public Guid PackUnitId
        {
            get { return _packUnitId; }
            set { _packUnitId = value; }
        }

        public decimal NumberPerPhysical
        {
            get { return _numberPerPhysical; }
            set { _numberPerPhysical = value; }
        }

        public decimal PhysicalSalePrice
        {
            get { return _physicalSalePrice; }
            set { _physicalSalePrice = value; }
        }

        public decimal PackSalePrice
        {
            get { return _packSalePrice; }
            set { _packSalePrice = value; }
        }

        public DateTime CreatedOn
        {
            get { return _createdOn; }
            set { _createdOn = value; }
        }

        public string CreatedBy
        {
            get { return _createdBy; }
            set { _createdBy = value; }
        }

        public DateTime UpdatedOn
        {
            get { return _updatedOn; }
            set { _updatedOn = value; }
        }

        public string UpdatedBy
        {
            get { return _updatedBy; }
            set { _updatedBy = value; }
        }

        public bool IsDeleted
        {
            get { return _isDeleted; }
            set { _isDeleted = value; }
        }

        public int Status
        {
            get { return _status; }
            set { _status = value; }
        }

        public decimal AvailableQty
        {
            get { return _availableQty; }
            set { _availableQty = value; }
        }
        #endregion

    }
    #endregion
}
